Introduction

“By the 43rd century mankind had expanded and colonized most of the Galaxy.  A sprawling Empire ruled the colonized worlds and a period of peace ensued that lasted several centuries.  During this time the Empire grew decadent and independent Lords craftily hoarded resources and built up secret military forces.

“The Star Lords convened on the Eve of the Galactic Solstice, and set the date for their combined assault on the decaying centralized Imperial Navy.  The resulting battle was brutal but swift, and the Imperial forces were totally eliminated in just under 20 years.

“Now that their mission was accomplished, the reason for cooperation no longer existed.  The Star Lords turned on each other's territories, and the Age of Solar Vengeance began.”

Solar Vengeance puts you in the role of one of the Star Lords, seeking to expand your territory at the expense of your neighboring Lords.  The Empire has just been crushed, and the nearby independent Worlds are ripe for the picking.  You must guard your Capital StarSystem while you expand your territory, and ultimately conquer your enemies' Capitals.


The Galaxy

Solar Vengeance is played on a 2D grid that represents an area of the Galaxy.  The map size for most Scenarios is 100x100, but can vary to as large as 500x500.  Larger maps lend themselves to more prolonged games.  Maps smaller than 100x100 typically lead to brutal, fast-paced play.

Each cell in the map grid can contain a single object.  Game objects include StarSystems, StarShips, and Wormholes.  A cell can also be filled with Nebula, but Nebula does not actually take up space, so other objects can occupy the cell as well.  Scenario files control the number of location of StarSystems and Wormholes, and the amount of Nebula contained in the Galaxy.

 StarSystems

As a Star Lord, it is your goal to conquer and accumulate as many StarSystems as possible.  StarSystems generate Resources, with which you build StarShips to expand your power.  If your Capital StarSystem is conquered, your captor captures your entire empire and you are eliminated.

 StarShips

You build StarShips to manage and direct your empire.  There are a number of StarShip types in Solar Vengeance, but you must select only 6 to start play with.  You gain the ability to build more StarShip types as you conquer enemy Star Lords, and certain bonus StarSystems.

 Nebula

Nebulae are interstellar clouds of gas and dust.  StarShips that are within a Nebula are not visible on Scanners.  Furthermore, StarShip Scanners are inoperable within a Nebula.

 WormHoles

WormHoles are anomalies in the space-time continuum, kind of a folding of the fabric of space.  You won't see a Wormhole until you move a StarShip next to it or Scanners pick it up.  Each Wormhole has a destination point somewhere on the map.  Moving a StarShip into a Wormhole causes the ship to jump to that destination point.  You can't determine the destination point without sending a StarShip into the Wormhole.

Navigating the Galaxy

The main display window in Solar Vengeance provides a view of only a portion of the entire playing area.  The viewport resizes as you resize the application’s Window.  At the lower right of the main game display is a strategic map that shows the entire Galaxy.  The area you are currently viewing is indicated by a blue rectangle.  You can click and drag within the strategic map to view different areas of the playing grid.


 StarSystems

Your galactic territory consists of the StarSystems that you control.  The more StarSystems you own, the more Resources you will produce and the quicker you'll be able to conquer the enemy Star Lords.

Capital StarSystems

Capital StarSystems are indicated by a diamond shape surrounding the StarSystem symbol.  Capital StarSystems are very important!  If your Capital is conquered, you are eliminated from play.  You eliminate other players by conquering their Capitals.  Be sure to defend and guard your Capital StarSystem well.

Value

Each StarSystem has a numeric Value.  The higher the Value rating, the faster the StarSystem generates Resources.

Shields

Shields offer a StarSystem protection against enemy attack.  Building a single Shield costs Resources equal to 1 plus the current Shield rating.

Scanners

StarSystem Scanners reveal the characteristics of other StarSystems and the location of enemy StarShips.  Building a single Scanner costs Resources equal to 1 plus the current Scanner rating.

Resources

As a StarSystem generates Resources, they accumulate until they are used.  You can use Resources to build Shields, Scanners and StarShips.  You can also transport Resources between StarSystems using the Freighter type StarShip.

Technology Bonus

Some StarSystems have a technology bonus for building a certain type of StarShip.  If you capture such a StarSystem, you will be able to build that StarShip type at any of your StarSystems.  If you build that StarShip type at the bonus StarSystem, you will receive the bonus savings in Resource cost.


Resources

StarSystems continually generate Resources at a rate determined by their Value.  These Resources accumulate at the StarSystem and you can use them to build Shields, Scanners, and StarShips.  Independent StarSystems do not generate Resources until they are captured, although they may hold an initial Resource stockpile.  When you capture an enemy StarSystem, you can use any Resources that were present there immediately.

You can use Freighter StarShips to transfer Resource between StarSystems.

Tech Multiple

Each player has a Tech Multiple that is displayed at the lower right of the main window.  All players begin with a Tech Multiple of 1.0.  All Resources that you generate are multiplied by this value.  You can build TechShip StarShips to increase your Tech Multiple.


 StarShips

There are 22 different StarShip types available in Solar Vengeance, and you can select 6 StarShip types to begin a game.  During the game you can expand your inventory of StarShip types in one of two ways.  When you conquer an enemy Star Lord, you gain the knowledge to build all of the StarShip types they could build.  Also, certain StarSystems offer a StarShip type technology bonus.  After conquering such a StarSystem, you learn how to build that StarShip type.

Overhead Cost

Each StarShip type has a Resource Overhead cost to build, before addition of Engines and additional Systems.

Engines

All StarShips have an Engine rating.  With most StarShip types, you determine how many Engines to place on the StarShip when you build it.  Adding more Engines to a StarShip increases the cost of the StarShip exponentially.  A StarShip's Engines govern how often the StarShip can move and act.  This value is very important.  Since Engines govern a StarShip's action as well as movement, it determines when StarShips are able to attack.  For example, a StarTillery with 10 Engines will fire twice as often as one with 5 Engines.

Additional Systems

Many StarShips will have a single, additional System that you can build.  For example, you can build 1 or more Weapons on a WarShip.  Adding more of these Systems exponentially increases the Resource cost of the StarShip, just like adding Engines.

Cloaking

Any StarShip can be cloaked.  Cloaked StarShips are not picked up on Scanners, and are seen by an enemy only when adjacent to one of their StarShips or StarSystems.  Cloaking doubles the cost of the StarShip.

Damage

StarShips can become damaged during the course of the game.  Engines and/or the StarShip’s additional System can become damaged.  You'll notice a damaged StarShip by the way it vibrates as it moves.  You can repair damaged StarShips with a RepairShip or BattleStation.


StarShip Types

 WarShip [Weapons]

•	Each attack a WarShip makes does random damage to the enemy’s Weapons or Additional System (if present).  The amount of damage done is between 1 and the Weapons rating of the WarShip.  Enemy StarShips are destroyed when their engines or Additional System are reduced to zero.

•	WarShips can only damage other WarShips with a lower Weapons rating.  If a WarShip attacks another WarShip with an equal or higher Weapons rating, it is destroyed.

•	WarShips reduce StarSystem Shields by the amount of their Weapons rating.  If the WarShip has a higher Weapons rating than the StarSystem’s Shields, the StarSystem is conquered.  WarShips are always destroyed during attacks against StarSystems.

 ScanShip [Scanners]

•	ScanShips reveal the characteristics of StarSystems within their Scanner range.  ScanShips reveal the location of enemy StarShips within their Scanner range, but not their StarShip type of detailed characteristics.

 Drone

•	Drones are one-shot attack weapons.  A Drone is always destroyed during an attack, but has a chance of completely destroying its target.  The chance a Drone destroys its target is equal to the Drone’s Engine rating divided by the target StarShip’s Engine rating.  Therefore, if the Drone has an equal or higher Engine rating than its target, the target’s destruction is guaranteed.

 E-Mine

Detonation

•	E-Mines detonate as soon as an enemy StarShip is adjacent to them.  Both the enemy StarShip and the E-Mine are destroyed in the detonation.

•	E-Mines have a fixed Engine rating of 1.

 SpyShip [Scanners]

•	Like ScanShips, SpyShips reveal the characteristics of StarSystems and the presence of enemy StarShips within their Scanner range.  However, SpyShips also reveal the StarShip type and detailed characteristics of enemy StarShips.

 Freighter [Cargo Bays]

•	Freighters can transport Resources between two StarSystems.  The amount of Resources a Freighter can hold is determined by its Cargo Bays.

 InkSpot

•	InkSpots “tag” enemy StarShips that are adjacent to them.  The StarShip type and characteristics of tagged StarShips are reveled by the InkSpot, and it remains visible even when outside of Scanner range.

•	InkSpots possess a special evasive maneuvering system that causes them to automatically move away from enemy StarShips that are adjacent to them, once they are tagged.

 CloakDetector [Detector Range]

•	CloakDetectors reveal the presence of cloaked enemy StarShips within their Detector Range.  The StarShips do not actually become visible, but the CloakDetector will indicate the direction of the nearest cloaked vessel.

 Tug

•	A Tug can tow a single StarShip, friendly or enemy.  The tugged StarShip cannot execute orders of its own until released.

 HijackShip

•	HijackShips steal enemy StarShips that they attack.  The target StarShip immediately comes under control of the owner of the HijackShip.  The HijackShip is destroyed in the process of making its attack.

 ShieldGenerator

•	ShieldGenerators can generate Shields around a single StarSystem.  The ShieldGenerator must be adjacent to the target StarSystem.  The rate at which Shields are generated depends on the current number of Shields that the StarSystem has.  Shield generation proceeds faster when fewer Shields are already present.

 CommandShip [Command Radius]

•	CommandShips increase by 1 the Weapons rating of every WarShip within their Command Radius.  This effect is cumulative when WarShips are under the influence of multiple CommandShips.

 DoppleShip [Weapons]

•	DoppleShips behave like WarShips, but their appearance is different on enemy scanners.  To enemies, a DoppleShip looks just like a WarShip, but with a much lower Engine and Weapons rating.

 RepairShip

•	RepairShips can repair a single damaged StarShip, including themselves.  The RepairShip’s Engines determine how quickly it can affect repairs.

 DoomMissile [WarHeads]

•	DoomMissiles can target a single StarSystem.  When they strike their target, each WarHead destroys from 1 to 6 Shields.  DoomMissiles cannot conquer StarSystems.

•	Once a DoomMissile is given a target, it proceeds toward the StarSystem, and its orders cannot be changed or canceled.

 NukeMissile [WarHeads]

•	NukeMissiles can target a single StarSystem.  When they strike their target, each WarHead reduces the Resources on the StarSystem by up to 50%.

•	Once a NukeMissile is given a target, it proceeds toward the StarSystem, and its orders cannot be changed or canceled.

 MineSweeper [Armor]

•	MineSweepers can absorb E-Mine detonations.  Each E-Mine absorbed reduces the MineSweeper’s Armor by 1.

 GravShip

•	GravShips contain Quantum Generators and can drag entire StarSystems.  While dragging a StarSystem, the GtravShip’s effective Engine rating is reduced to 1.

 StarTillery [Range]

•	StarTillery are long-range attack StarShips.  They fire at the closest enemy StarShip within their Range, doing 1 point of damage each time they fire.  The rate a StarTillery fires is determined by its Engine rating.

 TechShip

•	TechShips are interstellar laboratories, and slowly work to raise your Tech Multiple .  As your Tech Multiple increases, you generate Resources more quickly at all of your StarSystems.

•	All TechShips have a fixed Engine rating of 3.

 JumpGateShip

•	JumpGateShips can create permanent Wormholes.  The entry point of the Wormhole is placed next to the StarSystem where the JumpGateShip was built, and the exit point is placed where the JumpGateShip was at the time the “Create JumpGate” order was given.  The JumpGateShip is destroyed in the process of creating the Wormhole.

•	Only a single JumpGate can be built at an individual StarSystem.

 BattleStation [Hull]

•	BattleStations contain Hull that serves to absorb damage from StarShip attacks.  A BattleStation is destroyed when its Hull reaches zero.  BattleStations always absorb damage into their Hull first.  Finally, Drones do not destroy BattleStations … they only inflict 1 point of damage.

•	BattleStations will repair damaged StarShips that are adjacent to them.  A BattleStation will repair itself before any other damaged StarShip.  The BattleStation repairs 1 point of damage each Impulse that it acts.

•	BattleStations can attack StarSystems.  They destroy one enemy Shield each Impulse that they attack.  A BattleStation will conquer a StarSystem reduced to zero Shields.

•	BattleStations have Cosmic RamScoops that collect Resources as they move through space.  BattleStations can build StarShips with the Resources that they accumulate.  However, BattleStations move at a fixed Engine rate of 6.


StarSystem Orders

Click on any StarSystem that you own to give it orders.

Build Shield

Building a Shield costs Resources equal to the current number of Shields at the StarSystem plus one.

AutoBuild Shields

If this option is selected, the StarSystem will automatically utilize its Resources to build Shields.

Build Scanner

Building a Scanner costs Resources equal to the current number of Scanners at the StarSystem plus one.

AutoBuild Scanners

If this option is selected, the StarSystem will automatically utilize its Resources to build Scanners.

Build StarShip

Building a StarShip costs Resources based on the StarShip type, number of Engines and Additional Systems given, and whether or not the StarShip is cloaked.

AutoBuild StarShips

If this option is selected, the StarSystem will automatically utilize its Resources to build a specific type of StarShip.  If you have not selected the StarShip type, turning this option on presents you with the StarShip selection interface.


StarShip Orders

You can select a single StarShip by clicking on it, or a group of StarShips by clicking and dragging a box around them with the mouse.  Once selected, you can give the StarShip(s) one of several orders.  The process of giving a StarShip or group of StarShips an order is typically three steps.  First, click the StarShip or select the group of StarShips.  Then, click the desired order button (or use the Hot Key for that order).  Finally click the desired “target” of the order.  For example, the Escort order requires a target StarShip to Escort to complete the order.

Move

The StarShip(s) will move to the specified destination.

Target

The StarShip(s) will target the selected StarSystem or StarShip.

Escort

The StarShip(s) will attempt to keep their position relative to the selected StarShip.

Defend

The StarShip(s) will defend the selected StarSystem or StarShip.  If enemy StarShips come near the Defend target, the StarShip(s) will move to intercept the attackers.  WarShips will not intercept enemy ships that are known to have equal or higher Weapons ratings, or E-Mines.

Patrol

The StarShip(s) will continually patrol along the path that you indicate.  To make the StarShip(s) patrol in a repeating circuit, end the path by clicking back on the first point that you selected..

Special Orders

Many StarShip types have their own special order types.  For example, Freighters can be given the Transport order, commanding them to transport Resources between two StarSystems that you own.

Attack Adjacent

StarShips that can attack enemy StarShips can be set to attack adjacent StarShips.  By default, this option is on when the StarShip is built.  Turn this option off if you do not want the StarShip(s) to automatically attack adjacent targets.


Impulses and Movement

The heartbeat of a Solar Vengeance game is measured in Impulses.  Impulses are units of action that progress at a rate of about one per second.  Impulses are displayed in the upper left corner of the interface.

The Impulses in which a StarShip can move, attack, and act are governed by its Engine rating.  The higher a StarShip’s Engine rating, the more frequently it will act.

The maximum number of Engines a StarShip can have is 20.  A StarShip with 20 Engines will act on each and every Impulse.  StarShips with fewer Engines will have some Impulses in which they do not act.  For instance, a StarShip with 10 Engines will act only every other Impulse.

The relationship between Engines, Impulses, and ship action is important to understand, and can enhance your planning and strategy.  As an example, you can usually send a very fast (E20) WarShip with a few Weapons to clear out a mass of slower Drones.  The WarShip will move and attack each Impulse, damaging and destroying Drones as it goes.  The WarShip will actually be able to execute many attacks before the Drones even have a chance to attack.  When the Drones are finally able to attack, the odds of them destroying the WarShip are slim, because a Drone’s success rate is determined by the ratio of it and its target’s Engines.

Of course, this strategy can easily be countered by defending the Drones with a faster WarShip (or a StarTillery, etc.).


Alliances

You can form alliances with other players in a Multi-Player game.  Click the Alliances button in the top panel to bring up the Alliances interface.

The first level of alliance is “Non-Aggression”.  When you establish this form of alliance, your StarShips will not attack the allied Player’s StarShips unless explicitly given a Target order.  This alliance level affects WarShips, Drones and E-Mines as well as StarTillery.

The second level of alliance is “Intelligence”.  When you establish this form of alliance, you share your visibility with your allies.  Invoking this alliance level automatically turns on “Non-Aggression” as well.

Be careful when making alliances!  In particular, make sure your ally has set his alliance controls as well, so the alliance is not one sided.  Also, beware ... alliances can be broken at the push of a button!


Communications

You can conference with other players in a Multi-Player game.  Click the Chat button in the top panel to bring up the Communication interface.

Use the Mute Controls to control who can see the messages that you send.  By default, your messages will be sent to all Players.  You can mute one or more Players by clicking their mute buttons.  You will not see any incoming messages from Players that you have muted.


Multi-Player Games

In the registered version of Solar Vengeance you can play against other Players on the Internet.  You must already have an Internet connection to take advantage of this feature.

Press the “PrismServer Login” button to establish a connection.  You will be asked to log into a specific PrismServer.  You can select the default PrismServer that is hosted by Silicon Commander Games, or specify the address and port number of another PrismServer that you know of.  If this is your first time logging in, create a new account.

After you log in, you'll be transferred to the Game Lobby.  Here you can chat with other users and create or join Multi-Player games.  When you create a game, you're first presented with the Game Settings screen.  Be sure to accurately set the number of players that you expect to play.  The game will not begin until that many users have joined the game subject.

Silicon Commander Games’ PrismServer maintains a history of Multi-Player games, and a list of top-ranked players.  Visit the web site at www.silicmdr.com for more information.


Game Editors

One of the exciting new features of Solar Vengeance is the ability to program your own Scenarios and Computer Brains using the built in scripting language.  The Solar Vengeance scripting language is similar to the Pascal programming language.  Scenario scripts and Computer Brain scripts have their own function extensions.

Click the Game Editors button to enter the scripting interface.  Here you can load and examine existing Scenario and Computer Brain scripts, modify them, or write your own from scratch.  Use the Compile option to test the script for errors before saving it.

A library of Solar Vengeance script files will be archived at the Silicon Commander Games web site, http://www.silicmdr.com, so if you create any good scripts, please forward them so others can download and enjoy them.

If you decide to write Computer Brain scripts, you can test your Brains by having them fight the Brains that are provided.  Just set the number of human Players in a new game to zero.  Your Brains will fight it out, and you’ll have a complete view of all of the action, with everything visible to you.

Computer Brain scripts are executed once every 10 Impulses, and the different Players alternate the Impulses in which their scripts are executed.


Basic Scripting Language
Solar Vengeance Scripting Language

This document contains some example script code the illustrate the basic structure of the scripting language.

{FOR loop}

y := 0;

z := 0;

for x := 1 to 10 do

   begin

      y := y + 1;

      z := z + y * 2;

   end;

print (x); print (y); print (z);

{While loop}

y := 30; z := 1;

while y > 0 do begin

z := z * 2;

y := y - 1;

end;

print (y); print (z);

f := 0.0;

if (z > 0) and (z < 4) xor (y >= 0) or (y <= 4) and (x <> 0) then

   x := x mod 5 div 2;

if z = f then

   begin

     x := (((((y * 2) div 3) + 2) - (8 mod 1234)) + 3);

   end

else

   begin

      f := (3.1415926 / 23) * 2.345435E-2;

      f := f + 3 - $100;

      f := f + 2E2;

     print (f);

   end;

The following built-in functions can be used in both Scenario and Computer Brain scripts.

Array (var array, int)

- Assigns to the variable in PAR1 an array with PAR2 elements

- If the variable in PAR1 contains already an array then array is resized.

Round (float) : integer

Trunc (float) : integer

Int (float) : float

Frac (float) : float

Insert (string, var string, integer)

Delete (var string, integer, integer)

Copy (string, integer, integer)

Pos (string, string)

StrToInt (string) : integer

IntToStr (integer) : string

- Converts string to integer and integer to string


Scripting Scenarios
Scenario Script Functions

The following function extensions can be used when creating Scenario scripts:

Version( version: float )

Use this function to specify what version this script was intended for.  Solar Vengeance will not accept a script that was written for a higher version number.

SetMapSize( x: integer, y: integer )

Use this function to establish the size of the game map for the Scenario.

CreateStarCluster( Stars: integer, X1: integer, Y1: integer, X2: integer, Y2: integer, Radius: integer, Density: integer )

Use this function to create a star cluster with the specified number of stars, radius and density.  The cluster will be created along a line determined by the points X1, Y1 to X2, Y2.

Random( From: integer, To: integer ): integer

Returns a random number between From and To.

CreateNebula( X: integer, Y: integer, Arms: integer, Cells: integer )

Creates a Nebula starting at X and Y, with the specified number of Arms and Cells.  The more Arms and Cells specified, the thicker and larger the Nebula will be.

SetNebula( X: integer, Y: integer, Value: boolean )

Causes the specified map location to contain a Nebula, or clear a Nebula if one was already there.

CreateWormhole( X: integer, Y: integer, DestX: integer, DestY: integer )

Creates a Wormhole at the specified location, with the specified destination.

SetDescription( Description: string )

Use this function to set the description of the Scenario that appears when the Scenario file is selected in the Game Settings screen.

AssignCapital( Player: integer, X1: integer, Y1: integer, X2: integer, Y2: integer )

Attempts to assign a StarSystem within the area specified by X1,Y1 – X2-Y2 as the Capital for the specified Player.  If no StarSystem can be found in this area, the Player’s Capital is assigned randomly.

CreateStarSystem( X: integer, Y: integer, Name: string, Value: integer, Shields: integer, Scanners: integer, Resources: integer, Owner: integer, Capital: boolean )

Allows you to create a StarSystem explicitly.  You can assign the StarSystem a name, or pass “?” to have the name randomly generated.  Pass –1 in the Owner parameter to have the StarSystem be independent.

SetVictoryConditions( Victory: integer, StarSystemName: string, Value: integer )

Allows you to establish alternate victory conditions for the scenario.  The following victory condition values are supported:

1 - Hold the StarSystem specified by name for the number of Impulses specified in Value.

2 - Horde a number of Resources specified by Value at the StarSystem specified.  Leave StarSystemName blank to have this condition apply to the Players’ Capitals.

3 - Blockade the specified StarSystem for a number of Impulses specified in Value.  A StarSystem is considered blockaded if enemy StarShips completely surround it.

SetStarSystemBonus( StarSystemName: string, BonusShipType: integer, BonusValue: integer )

Allows you to specify the bonus value of a particular StarSystem.  You must have first created the StarSystem with the CreateStarSystem function.  BonusShipType indicates which StarShip type to grant a bonus to.  See the BuildStarShip function in the next section for possible values.  The BonusValue ranges from 1 to 100, and indicates the percentage bonus that the StarSystem will have when building StarShips of its bonus type.  For example, if the StarSystem has a WarShip bonus of 20, and it is building a WarShip that would normally cost 100 Resources, the cost would be 20% less, or 80 Resources.


Scripting Computer Brains
Computer Brain Script Functions

The following function extensions can be used when creating Computer Brain scripts.  Remember, the Brain script executes every 10 Impulses.

General Purpose Functions

Version( Version: float )

Use this function to specify what version this script was intended for.  Solar Vengeance will not accept a script that was written for a higher version number.

Random( From: integer, To: integer ): integer

Returns a random number between From and To.

GetStarSystemCount( void ): integer

Returns the number of StarSystems.  Brains access StarSystems by an index number that ranges from 0 to GetStarSystemCount – 1.

GetStarShipCount( void ): integer

Returns the number of StarShips that the Brain can currently see.  Brains access StarShips by an index number that ranges from 0 to GetStarShipCount – 1;

GetCurrentPlayer( void ): integer

Returns the Player number that this Brain represents.  The range is 0-9.

StarSystem Information Functions

GetStarSystemX( integer ): integer

Returns the X position of the specified StarSystem.

GetStarSystemY( integer ): integer

Returns the Y position of the specified StarSystem.

GetStarSystemOwner( integer ): integer

Returns the Owner of the specified StarSystem (Player 0-9) or –1 if it is independent.

GetStarSystemValue( integer ): integer

Returns the Value of the specified StarSystem.

GetStarSystemShields( integer ): integer

Returns the Shields of the specified StarSystem.

GetStarSystemScanners( integer ): integer

Returns the Scanners of the specified StarSystem.

GetStarSystemResources( integer ): integer

Returns the Resources of the specified StarSystem.

IsStarSystemVisible( integer ): boolean

Returns whether or not the specified StarSystem is visible to the Brain.  StarSystems that are not visible will return 0 for all of the information functions mentioned above, except for the position functions, and GetStarSystemOwner, which will return –1.

IsStarSystemCapital( integer ): boolean

Returns whether or not the StarSystem is a Capital.

StarSystem Order Functions

BuildShields( integer, Number: integer )

Builds the specified number of Shields at the specified StarSystem, Resources permitting.

BuildScanners( integer, Number: integer )

Builds the specified number of Scanners at the specified StarSystem, Resources permitting.

BuildStarShip( integer, ShipType: integer, Engines: integer, AdditionalSystem: integer, Cloaked: boolean )

Builds the specified type of StarShip at the specified StarSystem, Resources permitting.  Use the following codes for StarShip types:

0-WarShip	1-ScanShip	2-Drone	3-Emine

4-SpyShip	5-Freighter	6-InkSpot	7-CloakDetector

8-Tug	9-HijackShip	10-ShieldGenerator	11-CommandShip

12-DoppleShip	13-RepairShip	14-DoomMissile	15-NukeMissile

16-MineSweeper	17-GravShip	18-StarTillery	19-TechShip

20-JumpGateShip	21-BattleStation

StarShip Information Functions

GetStarShipX( integer ): integer

Returns the X position of the specified StarShip.

GetStarShipY( integer ): integer

Returns the Y position of the specified StarShip.

GetStarShipCode( integer ): string

Returns the unique 3 letter code of the specified StarShip.  You can use this code in the Brain Data functions to track StarShip-specific information.

GetStarShipOwner( integer ): integer

Returns the Owner of the specified StarShip (Player 0-9).

GetStarShipType( integer ): integer

Returns the StarShip type of the specified StarShip.  See the BuildStarShip function above for a listing of StarShip types.

GetStarShipEngines( integer ): integer

Returns the number of Engines of the specified StarShip.

GetStarShipValue( integer ): integer

Returns the value of the specified StarShip’s Additional System (Weapons, Scanners, etc.), if present.

GetStarShipCloaked( integer ): boolean

Returns whether or not the specified StarShip is cloaked.

IsStarShipKnown( integer ): boolean

Returns whether or not the Brain “knows” the StarShip type and details of the specified StarShip.  If the location only is knows, the values of the other information functions will return 0.

IsStarShipTugging( integer ): boolean

Returns whether or not the specified StarShip is a Tug and is currently tugging another StarShip.

IsStarShipDragging( integer ): boolean

Returns whether or not the specified StarShip is a GravShip and is currently dragging a StarSystem.

IsStarShipPulsing( integer ): boolean

Returns whether or not the specified StarShip is a CloakDetector, and is currently pulsing (indicating that cloaked StarShips are within its Detector Range).

StarShip Order Functions

OrderMove( integer, X: integer, Y: integer )

Gives the specified StarShip an order to Move to the specified location.

OrderTargetStarShip( integer, TargetIndex: integer )

Gives the specified StarShip an order to Target the StarSystem specified in TargetIndex.

OrderTargetStarSystem( integer, TargetIndex: integer )

Gives the specified StarShip an order to Target the StarSystem specified in TargetIndex.

OrderDefendStarShip( integer, TargetIndex: integer )

Gives the specified StarShip an order to Defend the StarSystem specified in TargetIndex.

OrderDefendStarSystem( integer, TargetIndex: integer )

Gives the specified StarShip an order to Defend the StarSystem specified in TargetIndex.

OrderAttackAdjacent( integer, Value: boolean )

Controls whether or not the StarShip attacks adjacent enemy StarShips.

OrderEscort( integer, TargetIndex: integer )

Gives the specified StarShip an order to Escort the StarSystem specified in TargetIndex.

OrderTransport( integer, FromIndex: integer, ToIndex: integer )

Gives the specified Freighter an order to transport Resources between the two specified StarSystems.

OrderTug( integer, TargetIndex: integer )

Gives the specified Tug an order to Tug the StarSystem specified in TargetIndex.

OrderRelease( integer )

Gives the specified StarShip an order to Release the currently tugged StarShip (for Tugs) or dragged StarSystem (for GravShips).

OrderDrag( integer, TargetIndex: integer )

Gives the specified GravShip an order to Drag the StarSystem specified in TargetIndex.

OrderCreateGate( integer )

Gives the specified JumpGateShip an order to create a JumpGate at its current location.

OrderGenerateShields( integer, TargetIndex: integer )

Gives the specified ShieldGenerator an order to generate Shields at the StarSystem specified in TargetIndex.

OrderRepair( integer, TargetIndex: integer )

Gives the specified RepairShip an order to Repair the StarShip specified in TargetIndex.

Brain Information Functions

You can use these functions to store persistent data between executions of the Brain scripts.  Use this feature if you need to keep track of information relating to individual StarSystems or StarShips.  Make sure each of the “variables” you are creating has a unique DataName.

GetBrainData( DataName: string ): string

Retrieves the persistent data content of a data item named DataName.

SetBrainData( DataName: string, Value: string )

Stores the specified Value into a persistent data item named DataName.

Utility Functions

FindClosestStarSystem( X: integer, Y: integer, MaxDistance: integer, Friendly: boolean, IncludeNonVisible: boolean ): integer

Returns the closest StarSystem to X, Y that meets the specifications.  MaxDistance refers to the maximum distance to allow.  Friendly determines whether to return friendly or enemy StarSystems.  IncludeNonVisible determines whether to include StarSystems that are not yet seen.  If no StarSystems meet the criteria, the function returns –1.

FindClosestStarShip( X: integer, Y: integer, MaxDistance: integer, Friendly: boolean ): integer

Returns the closest StarShip to X, Y that meets the specifications.  MaxDistance refers to the maximum distance to allow.  Friendly determines whether to return friendly or enemy StarShips.  If no StarShips meet the criteria, the function returns –1.

Distance( X1: integer, Y1: integer, X2: integer, Y2: integer ): float

Returns the distance between the two specified points.

FindStarShipCode( Code: string ): integer

Returns the index of the StarShip with the specified Code, if any.  If no StarShip is found, the function returns –1.


Registering Solar Vengeance

For technical support or comments about this program, you may contact me at: dionkk@ix.netcom.com

The Registration fee for Solar Vengeance 4 is $25.  The following methods are available:

WEB ORDERS

Visit the Silicon Commander Games web site

http://www.silicmdr.com

and fill out the online order form--fast, easy and secure!

MAILED ORDERS

You may register with a check or money order for $25 USD.

Make them payable to "Silicon Commander Games" and send them to:

Silicon Commander Games

PO Box A3407

Chicago, IL  60690-3407